Computing technology has contributed enormously to the advancement of humankind. Computing systems come in a wide variety of physical forms including desktop computers, laptop computers, personal digital assistants, telephones, and even devices that have not been conventionally thought of as computing systems such as, for example, refrigerators and automobiles. Thus, a computing system may be any device or system that has a processor and a memory of any type.
One common application that computing technology supports are graphical modeling tools (also called “graphical designers”). Graphical modeling tools facilitate the orderly and efficient construction of graphical models. Graphical models include the visual representation of a collection of interrelated objects. Graphical models may be used in a different way by a wide variety of domains. For instance, workflows, organization charts, electrical circuits, software architectures, software flowcharts, may each be represented using graphical models. There may be literally thousands of different applications in which graphical modeling tools may be useful. In each case, the types of objects and interrelationships may be quite different. Even within a single domain of application, there may be definite preferences on how the objects and interrelationships are displayed. For instance, one bank may prefer one graphical modeling style for representing economic transactions, while another bank may represent a different graphical modeling style for economic transactions.
Building graphical modeling tools is a challenging and time consuming task. The building of a typical graphical designer may involve a software developer implementing a design surface that implements the graphical notation, a toolbox that allows the user to drag and drop element onto the design surface, a mechanism for representing properties of the objects on the design surface—the properties representing meaningful information about the problem the user is trying to model, and other User Interface (UI) elements like an explorer to navigate through the model data.
When one considers the enormous number of domains and preferences for different graphical designs, the task of building graphical modeling tools for each domain and preference seems ominous.